package es.usj.model;

import java.util.ArrayList;
import java.util.List;

/*import java.util.HashMap;
import java.util.Map;*/

public class Sintoma {
//	String prefijoSintoma = "HP";
	int codigoSintoma = 0;
	String descripcion = "";
	int subtipo = 0;
	String descripcionSubtipo = "";

	/*	public String getPrefijoSintoma() {
		return prefijoSintoma;
	}
	public void setPrefijoSintoma(String prefijoSintoma) {
		this.prefijoSintoma = prefijoSintoma;
	}*/
	public int getCodigoSintoma() {
		return codigoSintoma;
	}
	public void setCodigoSintoma(int codigoSintoma) {
		this.codigoSintoma = codigoSintoma;
	}

	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public String getDescripcionSubtipo() {
		return descripcionSubtipo;
	}
	public void setDescripcionSubtipo(String descripcionSubtipo) {
		this.descripcionSubtipo = descripcionSubtipo;
	}
	public int getSubtipo() {
		return subtipo;
	}
	public void setSubtipo(int subtipo) {
		this.subtipo = subtipo;
	}
	
//	Map <Integer, String> subtipos = new HashMap<Integer, String>();
	
	/**
	 * Convierte una cadena a lista de Sintomas
	 * @param cadena cadeneta con separadores
	 * @param caracterSeparador caracter separador, por defecto ";"
	 * @param listaCompleta TODO lista completa de sintomas, opcional, sirve para devolver los datos completos
	 * @return la lista de sintomas (con el objeto completo si pasamos la lista completa)
	 */
	public static final List<Sintoma> cadena2sintomas(String cadena, String caracterSeparador, List<Sintoma> listaCompleta) {
		List<Sintoma> res = new ArrayList<Sintoma>();
		if (cadena != null && cadena.length()>0) {
			String separador = caracterSeparador;
			if (separador == null) {
				separador = ";";
			}
			
			String sintomasArray[] = cadena.split(separador);
			if (sintomasArray.length > 0) {
				for (String codigoSintomaTmp : sintomasArray) {
					try {
						Sintoma sintomaTmp = new Sintoma();
						sintomaTmp.setCodigoSintoma(Integer.parseInt(codigoSintomaTmp));
						res.add(sintomaTmp);
					} catch (NumberFormatException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		}
		return res;		
	}
	

	/**
	 * Convierte una lista de sintomas en una cadena con separadores
	 * @param listaSintomas la lista
	 * @param caracterSeparador caracter a usar para separar, ";" por defecto
	 * @return
	 */
	public static final String sintomas2cadena(List<Sintoma> listaSintomas, String caracterSeparador) {
		String res ="";
		if (listaSintomas.size() > 0) {
			String separador = caracterSeparador;
			if (separador == null) {
				separador = ";";
			}

			for (Sintoma sintomaTmp : listaSintomas) {
				if (sintomaTmp != null) {
					res+=sintomaTmp.getCodigoSintoma() + separador;
				}
			}
		}
		
		return res;
	}
}
